function res = CrankNicholson_diffusionConvection_onestep(u,N,x_max,k,p)
h = x_max/N;
res1 = zeros(1,N+1);
res2 = zeros(1,N+1);
coes1 = cal_CDcoes1(p);
coes2 = cal_CDcoes2(p);
tmp = u;
res1 = res1 + coes1(1)*tmp;
res2 = res2 + coes2(1)*central_der2_onestep(tmp,N,x_max);
num = size(coes1,2);
for i = 2:num
    tmp = central_der2_onestep(tmp,N,x_max);
    res1 = res1 + h^(2*i-2)*coes1(i)*tmp;
    res2 = res2 + h^(2*i-2)*coes2(i)*central_der2_onestep(tmp,N,x_max);
end
res = CrankNicholson_diffusionConvection_solve(u + 0.5*k*central_der1_onestep(res1,N,x_max) + 0.5*k*res2,N,x_max,k);